home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Performance Co-Pilot 1.3
/
SGI Performance Co-Pilot 1.3.iso
/
dist
/
dist6.4
/
pcp.idb
/
usr
/
share
/
catman
/
u_man
/
cat3
/
PMAPI
/
pmconvscale.z
/
pmconvscale
Wrap
Text File
|
1997-04-03
|
5KB
|
133 lines
PPPPMMMMCCCCOOOONNNNVVVVSSSSCCCCAAAALLLLEEEE((((3333)))) PPPPMMMMCCCCOOOONNNNVVVVSSSSCCCCAAAALLLLEEEE((((3333))))
NNNNAAAAMMMMEEEE
ppppmmmmCCCCoooonnnnvvvvSSSSccccaaaalllleeee - rescale a performance metric value
CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
####iiiinnnncccclllluuuuddddeeee <<<<ppppccccpppp////ppppmmmmaaaappppiiii....hhhh>>>>
iiiinnnntttt ppppmmmmCCCCoooonnnnvvvvSSSSccccaaaalllleeee((((iiiinnnntttt ttttyyyyppppeeee,,,, ppppmmmmAAAAttttoooommmmVVVVaaaalllluuuueeee ****iiiivvvvaaaallll,,,, ppppmmmmUUUUnnnniiiittttssss ****iiiiuuuunnnniiiitttt,,,, ppppmmmmAAAAttttoooommmmVVVVaaaalllluuuueeee
****oooovvvvaaaallll,,,, ppppmmmmUUUUnnnniiiittttssss ****oooouuuunnnniiiitttt))))
cccccccc ............ ----llllppppccccpppp
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
All performance metric values may be encoded in a _p_m_A_t_o_m_V_a_l_u_e union,
defined as follows;
typedef union {
__int32_t l; /* 32-bit signed */
__uint32_t ul; /* 32-bit unsigned */
__int64_t ll; /* 64-bit signed */
__uint64_t ull; /* 64-bit unsigned */
float f; /* 32-bit floating point */
double d; /* 64-bit floating point */
char *cp; /* char ptr */
void *vp; /* void ptr */
} pmAtomValue;
The encoding of a performance metric's dimensionality and scale uses a
_p_m_U_n_i_t_s structure; see ppppmmmmLLLLooooooookkkkuuuuppppDDDDeeeesssscccc(3).
Given a performance metric value pointed to by _i_v_a_l multiply it by a
scale factor and return the value in _o_v_a_l. The scaling takes place from
the units defined by _i_u_n_i_t into the units defined by _o_u_n_i_t. Both input
and output units must have the same dimensionality.
The performance metric type for both input and output values is
determined by _t_y_p_e, the value for which is typically extracted from a
_p_m_D_e_s_c structure, following a call to ppppmmmmLLLLooooooookkkkuuuuppppDDDDeeeesssscccc(3) for a particular
performance metric.
ppppmmmmCCCCoooonnnnvvvvSSSSccccaaaalllleeee is most useful when values returned via ppppmmmmFFFFeeeettttcccchhhh(3), (and
possibly extracted using ppppmmmmEEEExxxxttttrrrraaaaccccttttVVVVaaaalllluuuueeee(3)) need to be normalized into
some canonical scale and units for the purposes of computation.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
PPPPMMMMAAAAPPPPIIII(3), ppppmmmmAAAAttttoooommmmSSSSttttrrrr(3), ppppmmmmEEEExxxxttttrrrraaaaccccttttVVVVaaaalllluuuueeee(3), ppppmmmmFFFFeeeettttcccchhhh(3) ppppmmmmLLLLooooooookkkkuuuuppppDDDDeeeesssscccc(3),
ppppmmmmPPPPrrrriiiinnnnttttVVVVaaaalllluuuueeee(3), ppppmmmmTTTTyyyyppppeeeeSSSSttttrrrr(3) and ppppmmmmUUUUnnnniiiittttssssSSSSttttrrrr(3).
DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
PPPPMMMM____EEEERRRRRRRR____CCCCOOOONNNNVVVV
PPPPaaaaggggeeee 1111
PPPPMMMMCCCCOOOONNNNVVVVSSSSCCCCAAAALLLLEEEE((((3333)))) PPPPMMMMCCCCOOOONNNNVVVVSSSSCCCCAAAALLLLEEEE((((3333))))
_i_u_n_i_t and _o_u_n_i_t have different dimensionality, or have inappropriate
_t_y_p_e
PPPPMMMM____EEEERRRRRRRR____UUUUNNNNIIIITTTT
Inappropriate _i_u_n_i_t or _o_u_n_i_t parameter
PPPPaaaaggggeeee 2222